package com.ccnf.model.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * <p>
 * <p>
 * </p>
 *
 * @author developer
 * @since 2018-06-07
 */
@TableName("social_user")
@Data
public class SocialUser extends Model<SocialUser> {
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    @TableId("user_id")
    @ApiModelProperty(value = "用户ID", hidden = true)
    private Long userId;
    /**
     * 社交openid
     */
    @TableField("open_id")
    @ApiModelProperty("社交openid")
    private String openId;
    /**
     * 社交用户名称
     */
    @ApiModelProperty("社交用户名称")
    private String nickname;
    /**
     * 用户头像URL
     */
    @TableField("head_image")
    @ApiModelProperty("用户头像URL")
    private String headImage;
    /**
     * 用户的性别，值为1时是男性，值为2时是女性，值为0时是未知
     */
    @ApiModelProperty("用户的性别")
    private Integer sex;
    /**
     * 国家，如中国为CN
     */
    @ApiModelProperty("国家，如中国为CN")
    private String country;
    /**
     * 用户个人资料填写的省份
     */
    @ApiModelProperty("用户个人资料填写的省份")
    private String province;
    /**
     * 普通用户个人资料填写的城市
     */
    @ApiModelProperty("普通用户个人资料填写的城市")
    private String city;
    /**
     * 用户手机号
     */
    @ApiModelProperty("用户手机号")
    private String phone;
    /**
     * 聊天ID
     */
    @TableField("chat_id")
    @ApiModelProperty("聊天ID")
    private String chatId;
    /**
     * 只有在用户将公众号绑定到微信开放平台帐号后，才会出现该字段。
     */
    @ApiModelProperty("只有在用户将公众号绑定到微信开放平台帐号后，才会出现该字段")
    @TableField("union_id")
    private String unionId;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", hidden = true)
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Long createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", hidden = true)
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Long updateTime;
    /**
     * 会管家返回的展会标识码
     */
    @ApiModelProperty("会管家返回的展会标识码")
    @TableField("channel_code")
    private String channelCode;

    @Override
    protected Serializable pkVal() {
        return this.userId;
    }
}